package com.dubbo.controller;

import com.dubbo.common.check.CheckUtil;
import com.dubbo.domain.User;
import com.dubbo.service.auth.PermissionService;
import com.dubbo.service.auth.RoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;


/**
 * 用户认证权限controller
 * @author chenluqiang
 * @date 2018年12月20日 下午5:26:35 
 *
 */
@RestController
@RequestMapping("/auth")
public class AuthController {
	
	@SuppressWarnings("unused")
	@Autowired
	private RoleService roleService;
	@Autowired
	private PermissionService permissionService;
	
	/**
	 *  添加角色
	 * @author chenluqiang
	 * @date 2018年12月15日 上午10:48:46 
	 * @param roleName 角色名称
	 * @param type 角色类型
	 * @return
	 */
	/*@PostMapping("/addRole")
	public Map<String,Object> addRole(String roleName,Integer type){
		return roleService.addRole(roleName, type);
	}*/
	
	/**
	 * 获取登录用户的角色与权限
	 * @author chenluqiang
	 * @date 2018年12月20日 下午5:30:50 
	 * @param request 
	 * @return  trader 是分销商 electric是电工 agent 是代理商 user 普通用户
	 * @throws Exception 
	 */
	@PostMapping("/rolesAndPermissions.api")
	public Map<String,Object> addRole(HttpServletRequest request){
		try {
			//校验是否登录
			User user = (User) CheckUtil.checkOline3(request);
			return permissionService.getRolesAndPermissions(user);
		}catch(Exception e) {
			return null;
		}
	}
	
	/**
	 * 添加权限
	 * @author chenluqiang
	 * @date 2018年12月26日 下午2:51:42 
	 * @param name 权限名称
	 * @param permission  权限
	 * @return
	 */
	@PostMapping("/addPermission")
	public Map<String,Object> addPermission(String name,String permission){
		return permissionService.add(name, permission);
	}
}
